// Copyright 2022 a.o.smith ALL Rights Reserved
package com.liuxinlong.modules.question.service;

import com.liuxinlong.modules.entity.TestQuestion;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 测试问题服务层接口
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2022年4月2日
 */
public interface TestQuestionService {
    /**
     * 分页查询测试问题
     *
     * @param queryParam 查询条件
     * @return 测试问题列表
     */
    List<Map<String, Object>> pageTestQuestionInfo(Map<String, Object> queryParam);

    /**
     * 查询测试问题条数
     *
     * @param queryParam 查询条件
     * @return 测试问题条数
     */
    int getTestQuestionCount(Map<String, Object> queryParam);

    /**
     * 新增测试问题
     *
     * @param testQuestion 测试问题
     */
    void addTestQuestionInfo(TestQuestion testQuestion);

    /**
     * 修改测试问题
     *
     * @param testQuestion 测试问题
     */
    void updateTestQuestionInfo(TestQuestion testQuestion);

    /**
     * 删除测试问题
     *
     * @param id 测试问题id
     */
    void deleteTestQuestionInfo(String id);

    /**
     * 导出测试问题
     *
     * @param id       测试问题id
     * @param response response
     */
    void exportTestQuestionInfo(String id, HttpServletResponse response);

    /**
     * 处理测试问题
     *
     * @param id           测试问题id
     * @param assign       指派用户
     * @param dealResult   处理结果
     * @param dealOpinions 处理意见
     */
    void dealTestQuestionInfo(String id, String assign, String dealResult, String dealOpinions);

    /**
     * 查询测试问题处理记录列表
     *
     * @param id 测试问题id
     * @return 测试问题处理记录列表
     */
    List<Map<String, Object>> queryDealRecordList(String id);
}
